package com.kylin.syn;

import java.util.ArrayList;

//线程不安全的集合 同一时间向集合中的同一位置添加元素。旧的被覆盖
public class UnsafeList {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 10000; i++) {
            new Thread(()->{
                synchronized (list){
                    System.out.println(Thread.currentThread().getName());
                    list.add(Thread.currentThread().getName());
                }
            }).start();
        }

        //让主线程延迟3s，否则其他线程还没添加完时，主线程就并发执行打印出list的元素个数了
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(list.size());
    }
}
